package main

import (
	"fmt"
	"time"
)

func main() {
	// //通过chan控制执行，获取参数
	// c := make(chan int)
	// go func() {
	// 	defer fmt.Println("子协程调用完毕")
	// 	for i := 0; i < 2; i++ {
	// 		fmt.Println("子协程 i=", i)
	// 		c <- i
	// 		time.Sleep(time.Second)
	// 	}
	// }()
	// for i := 0; i < 2; i++ {
	// 	n := <-c
	// 	fmt.Println("接收到channel=", n)
	// }

	// 通过chan控制执行
	c := make(chan string)
	go func() {
		defer fmt.Println("子协程调用完毕")
		for i := 0; i < 2; i++ {
			fmt.Println("子协程 i=", i)
			time.Sleep(time.Second)
		}
		c <- "告诉通道我执行完毕了"
	}()
	str := <-c
	fmt.Println("str=", str)
}
